Skip to content

feat(observability): attribute dashboard panels per cluster and server - #151

Open
gabriele-wolfox wants to merge 2 commits into
mainfrom
dev/49
Open

feat(observability): attribute dashboard panels per cluster and server#151
gabriele-wolfox wants to merge 2 commits into
mainfrom
dev/49

Conversation

@gabriele-wolfox

@gabriele-wolfox gabriele-wolfox commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

The Grafana dashboard was only validated against a single server and cluster, where sums and maxima are unambiguous. With several servers and clusters it folded independent entities into single misleading values and could not tell them apart.

Add a cluster_name attribute to the plugin backup metrics (klio.plugin.backup.*) so backup panels can be attributed per cluster even when several clusters share a namespace.

Rework the dashboard so every aggregation groups by its identifying label and nothing is folded silently:

  • Identify servers by the OpenTelemetry service.name instead of the pod host name, which collides when two servers share a name in different namespaces.
  • Scope server panels by service.name and cluster_name rather than the namespace, so a cluster backed up cross-namespace is attributed to the right server.
  • Group every panel by cluster, server and tier, and identify each series in its legend, so per-tier backup and WAL state is never folded (tier-1 and tier-2 have independent relay progress and retention).
  • Render the PostgreSQL timelines as stepped time series rather than a single current value, so a promotion or failover is visible as the step where the line jumps.
  • Derive a cluster label from the Kopia snapshot source so the base snapshot panels are per cluster too.

Update the metric catalog descriptions and the OpenTelemetry and Grafana documentation, and regenerate the committed dashboard JSON.

Assisted-by: Claude

Closes #149

The Grafana dashboard was only validated against a single server and
cluster, where sums and maxima are unambiguous. With several servers and
clusters it folded independent entities into single misleading values and
could not tell them apart.

Add a cluster_name attribute to the plugin backup metrics
(klio.plugin.backup.*) so backup panels can be attributed per cluster even
when several clusters share a namespace.

Rework the dashboard so every aggregation groups by its identifying label
and nothing is folded silently:
- Identify servers by the OpenTelemetry service.name instead of the pod
  host name, which collides when two servers share a name in different
  namespaces.
- Scope server panels by service.name and cluster_name rather than the
  namespace, so a cluster backed up cross-namespace is attributed to the
  right server.
- Group every panel by cluster, server and tier, and identify each series
  in its legend, so per-tier backup and WAL state is never folded (tier-1
  and tier-2 have independent relay progress and retention).
- Render the PostgreSQL timelines as stepped time series rather than a
  single current value, so a promotion or failover is visible as the step
  where the line jumps.
- Derive a cluster label from the Kopia snapshot source so the base
  snapshot panels are per cluster too.

Update the metric catalog descriptions and the OpenTelemetry and Grafana
documentation, and regenerate the committed dashboard JSON.

Assisted-by: Claude
Signed-off-by: Gabriele Quaresima <gabriele.quaresima@enterprisedb.com>
Regenerate the three dashboard section screenshots against a
multi-server, multi-cluster, two-tier environment so they reflect the
reworked panels: per-cluster and per-tier series, servers identified by
service name, and the PostgreSQL timelines rendered as stepped time
series.

Assisted-by: Claude
Signed-off-by: Gabriele Quaresima <gabriele.quaresima@enterprisedb.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

observability: panel-by-panel review of the Grafana dashboard for multi-server/multi-cluster setups

1 participant